/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pl.tom.social.analyzer.analysis;

import java.io.Reader;
import java.util.Set;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.LowerCaseTokenizer;
import org.apache.lucene.analysis.StopFilter;
import org.apache.lucene.analysis.TokenStream;

/**
 *
 * @author Tom
 */
public class SocialAnalyzer extends Analyzer {

	private Set stopWords;
	//TODO clean entry bodies so no html is present
	public static final String[] POLISH_STOP_WORDS = {
		"a", "aby", "acz", "aczkolwiek", "ale", "ależ", "aż", "bardziej", "bardzo", "bez", "bo", "bowiem", "by", "byli",
		"być", "był", "była", "było", "były", "będzie", "będą", "cali", "cała", "cały", "co", "cokolwiek", "coś", "czasami",
		"czasem", "czemu", "czy", "czyli", "dla", "dlaczego", "dlatego", "do", "gdy", "gdyż", "gdzie", "gdziekolwiek",
		"gdzieś", "go", "i", "ich", "ile", "im", "inna", "inne", "inny", "innych", "iż", "ja", "jak", "jakaś", "jakichś",
		"jakie", "jakiś", "jakiż", "jakkolwiek", "jako", "jakoś", "jednak", "jednakże", "jego", "jej", "jest", "jeszcze",
		"jeśli", "jeżeli", "już", "ją", "kiedy", "kilka", "kimś", "kto", "ktokolwiek", "ktoś", "która", "które", "którego",
		"której", "który", "których", "którym", "którzy", "lat", "lecz", "lub", "ma", "mają", "mi", "mimo", "między", "mnie",
		"mogą", "moim", "może", "możliwe", "można", "mu", "musi", "na", "nad", "nam", "nas", "naszego", "naszych",
		"natomiast", "nawet", "nic", "nich", "nie", "nigdy", "nim", "niż", "no", "np", "o", "obok", "od", "około", "on", "ona",
		"ono", "oraz", "pan", "pana", "pani", "po", "pod", "podczas", "pomimo", "ponad", "ponieważ", "powinien", "powinna",
		"powinni", "powinno", "poza", "prawie", "przecież", "przed", "przede", "przez", "przy", "roku", "również", "się",
		"sobie", "sobą", "sposób", "swoje", "są", "ta", "tak", "taka", "taki", "takie", "także", "tam", "te", "tego", "tej",
		"ten", "teraz", "też", "to", "tobie", "toteż", "trzeba", "tu", "twoim", "twoja", "twoje", "twym", "twój", "ty",
		"tych", "tylko", "tym", "u", "w", "we", "według", "wiele", "wielu", "więc", "więcej", "wszyscy", "wszystkich",
		"wszystkie", "wszystkim", "wszystko", "właśnie", "z", "za", "zapewne", "zawsze", "ze", "znowu", "znów", "został",
		"żadna", "żadne", "żadnych", "że", "żeby",
		"img", "html", "src", "fareast", "http", "prof", "msonospacing", "da", "ffc", "width", "d", "php", "id",
		"namespace", "prefix", "ns", "xml", "com", "microsoft", "office", "schemas", "nbsp", "p", "www", "pl", "index",
		"iii"
	};

	public SocialAnalyzer() {
		this.stopWords = StopFilter.makeStopSet(POLISH_STOP_WORDS);
	}

	@Override
	public TokenStream tokenStream(String fieldName, Reader reader) {
		return new StopFilter(new LowerCaseTokenizer(reader), stopWords);
	}
}
